#ifndef _SYS_JS_H_
#define _SYS_JS_H_

#include "FanObj.h"
#include "SysTypes.h"

#define JS_VTABLE(self)   ((JsVTable*)((FanObj*)self)->vtable)


extern Type*    Js_classType;
extern VTable*  Js_classVTable;


/* [sys::Js] Attributes */
struct Js
{
  FanObj        super;
};


/* [sys::Js] Virtual-table */
typedef struct JsVTable
{
  FanObjVTable  super;
} JsVTable;


/* [sys::Js] Methods and fields */
Js*             Js_defVal(void);


/* [sys::Js] Type-system functions */
Type*           Js_initType(void);
VTable*         Js_initVTable(void);
void            Js_initStatic(void);


#endif
